const AVAILABLE_CASH: [u32; 8] = [1, 2, 5, 10, 20, 30, 50, 100];
pub fn dp_rec_mc(amount: u32) -> u32 {
    // TODO: 这里写逻辑
    let mut dp = vec![0; (amount + 1) as usize];
    dp[0] = 0;

    for i in 1..=amount {
        // 1元
        dp[i as usize] = i;
        let mut min = u32::MAX;
        for &cash in AVAILABLE_CASH.iter() {
            if i >= cash {
                min = min.min(dp[(i - cash) as usize] + 1);
            }
        }
        dp[i as usize] = min;
    }

    dp[amount as usize]
}
